#ifndef _EC600S_AT_H
#define _EC600S_AT_H

#pragma pack(1)

typedef struct
{
    int mcc;
    int mnc;
    int lac;
    int cellid;
    int bsic;
    int arfcn;
    int band;
    int rxlev;
    int txp;
    int rla;
    int drx;
    int c1;
    int c2;
    int gprs;
    int tch;
    int ts;
    int ta;
    int maio;
    int hsn;
    int rxlevsub;
    int rxlevfull;
    int rxqualsub;
    int rxqualfull;
    int voicecodec;
}ST_QENG_GSM;

typedef struct
{
    int mcc;
    int mnc;
    int lac;
    int cellid;
    int uarfcn;
    int psc;
    int rac;
    int rscp;
    int ecio;
    int phych;
    int sf;
    int slot;
    int speech_code;
    int comMod;
}ST_QENG_WCDMA;

typedef struct
{
    char is_tdd[32];
    int mcc;
    int mnc;
    int cellid;
    int pcid;
    int earfcn;
    int freq_band_ind;
    int ul_bandwidth;
    int dl_bandwidth;
    int tac;
    int rsrp;
    int rsrq;
    int rssi;
    int sinr;
    int srxlev;
}ST_QENG_LTE;

typedef struct
{
    char state[32];
    char mode[32];
    union
    {
        ST_QENG_GSM gsm;
        ST_QENG_WCDMA wcdma;
        ST_QENG_LTE lte;
    };
}ST_QENG;

typedef struct
{
    int mode;
    int format;
    char oper[64];
    int act;
}ST_COPS;

typedef struct
{
    int rssi;
    int ber;
}ST_CSQ;

typedef struct
{
	U16 Year;
	U8 Month;
	U8 Day;
	U8 Hour;
	U8 Min;
	U8 Sencond;
	S8 Zone;
}ST_TIME;
#pragma pack()

int Ec600sAT_FuncInit();
int Ec600sAT_QPOWD();
int Ec600sAT_CGSN(char *obuf);
int Ec600sAT_CIMI(char *obuf);
int Ec600sAT_QCCID(char *obuf);
int Ec600sATI(char *obuf);
int Ec600sAT_GMR(char *obuf);
int Ec600sAT_QENG(char *obuf);
int Ec600sAT_QCFG_nwscanmode(int scanmode, char *obuf);
int Ec600sAT_COPS(char *obuf);
int Ec600sAT_CSQ(char *obuf);
int Ec600sAT_CCLK(char *obuf);
int Ec600sAT_CGPADDR(char *obuf);
int Ec600sAT_CGMR(char *obuf);
int Ec600sAT_CGCONTRDP(char *obuf);

#endif

